using CoreManager.AI.Services;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace CoreManager.AI.Configuration;

/// <summary>
/// AI 服务扩展
/// </summary>
public static class AIServiceExtensions
{
    /// <summary>
    /// 添加 AI 服务
    /// </summary>
    public static IServiceCollection AddAIServices(
        this IServiceCollection services,
        IConfiguration configuration)
    {
        // 注册内存缓存（如果尚未注册）
        services.AddMemoryCache();

        // 注册会话历史服务（单例模式，全局共享会话数据）
        services.AddSingleton<ISessionHistoryService, MemorySessionHistoryService>();

        // 注册 AI 服务（Scoped，每个请求独立）
        services.AddScoped<IAIService, OllamaAIService>();

        return services;
    }
}

